package com.fujitsu.nanjing.tieba.ibator;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CoreReportLogCriteria {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer mysqlOffset;

    private Integer mysqlLength;

    public CoreReportLogCriteria() {
        oredCriteria = new ArrayList<Criteria>();
    }

    protected CoreReportLogCriteria(CoreReportLogCriteria example) {
        this.orderByClause = example.orderByClause;
        this.oredCriteria = example.oredCriteria;
        this.distinct = example.distinct;
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setMysqlOffset(Integer mysqlOffset) {
        this.mysqlOffset = mysqlOffset;
    }

    public Integer getMysqlOffset() {
        return mysqlOffset;
    }

    public void setMysqlLength(Integer mysqlLength) {
        this.mysqlLength = mysqlLength;
    }

    public Integer getMysqlLength() {
        return mysqlLength;
    }

    protected abstract static class GeneratedCriteria {
        protected List<String> criteriaWithoutValue;

        protected List<Map<String, Object>> criteriaWithSingleValue;

        protected List<Map<String, Object>> criteriaWithListValue;

        protected List<Map<String, Object>> criteriaWithBetweenValue;

        protected GeneratedCriteria() {
            super();
            criteriaWithoutValue = new ArrayList<String>();
            criteriaWithSingleValue = new ArrayList<Map<String, Object>>();
            criteriaWithListValue = new ArrayList<Map<String, Object>>();
            criteriaWithBetweenValue = new ArrayList<Map<String, Object>>();
        }

        public boolean isValid() {
            return criteriaWithoutValue.size() > 0
                || criteriaWithSingleValue.size() > 0
                || criteriaWithListValue.size() > 0
                || criteriaWithBetweenValue.size() > 0;
        }

        public List<String> getCriteriaWithoutValue() {
            return criteriaWithoutValue;
        }

        public void setCriteriaWithoutValue(List<String> criteriaWithoutValue) {
            this.criteriaWithoutValue = criteriaWithoutValue;
        }

        public List<Map<String, Object>> getCriteriaWithSingleValue() {
            return criteriaWithSingleValue;
        }

        public void setCriteriaWithSingleValue(List<Map<String, Object>> criteriaWithSingleValue) {
            this.criteriaWithSingleValue = criteriaWithSingleValue;
        }

        public List<Map<String, Object>> getCriteriaWithListValue() {
            return criteriaWithListValue;
        }

        public void setCriteriaWithListValue(List<Map<String, Object>> criteriaWithListValue) {
            this.criteriaWithListValue = criteriaWithListValue;
        }

        public List<Map<String, Object>> getCriteriaWithBetweenValue() {
            return criteriaWithBetweenValue;
        }

        public void setCriteriaWithBetweenValue(List<Map<String, Object>> criteriaWithBetweenValue) {
            this.criteriaWithBetweenValue = criteriaWithBetweenValue;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteriaWithoutValue.add(condition);
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("condition", condition);
            map.put("value", value);
            criteriaWithSingleValue.add(map);
        }

        protected void addCriterion(String condition, List<? extends Object> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("condition", condition);
            map.put("values", values);
            criteriaWithListValue.add(map);
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            List<Object> list = new ArrayList<Object>();
            list.add(value1);
            list.add(value2);
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("condition", condition);
            map.put("values", list);
            criteriaWithBetweenValue.add(map);
        }

        public Criteria andLogidIsNull() {
            addCriterion("logID is null");
            return (Criteria) this;
        }

        public Criteria andLogidIsNotNull() {
            addCriterion("logID is not null");
            return (Criteria) this;
        }

        public Criteria andLogidEqualTo(Integer value) {
            addCriterion("logID =", value, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidNotEqualTo(Integer value) {
            addCriterion("logID <>", value, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidGreaterThan(Integer value) {
            addCriterion("logID >", value, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidGreaterThanOrEqualTo(Integer value) {
            addCriterion("logID >=", value, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidLessThan(Integer value) {
            addCriterion("logID <", value, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidLessThanOrEqualTo(Integer value) {
            addCriterion("logID <=", value, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidIn(List<Integer> values) {
            addCriterion("logID in", values, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidNotIn(List<Integer> values) {
            addCriterion("logID not in", values, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidBetween(Integer value1, Integer value2) {
            addCriterion("logID between", value1, value2, "logid");
            return (Criteria) this;
        }

        public Criteria andLogidNotBetween(Integer value1, Integer value2) {
            addCriterion("logID not between", value1, value2, "logid");
            return (Criteria) this;
        }

        public Criteria andUseridIsNull() {
            addCriterion("userID is null");
            return (Criteria) this;
        }

        public Criteria andUseridIsNotNull() {
            addCriterion("userID is not null");
            return (Criteria) this;
        }

        public Criteria andUseridEqualTo(String value) {
            addCriterion("userID =", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotEqualTo(String value) {
            addCriterion("userID <>", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridGreaterThan(String value) {
            addCriterion("userID >", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridGreaterThanOrEqualTo(String value) {
            addCriterion("userID >=", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLessThan(String value) {
            addCriterion("userID <", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLessThanOrEqualTo(String value) {
            addCriterion("userID <=", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLike(String value) {
            addCriterion("userID like", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotLike(String value) {
            addCriterion("userID not like", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridIn(List<String> values) {
            addCriterion("userID in", values, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotIn(List<String> values) {
            addCriterion("userID not in", values, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridBetween(String value1, String value2) {
            addCriterion("userID between", value1, value2, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotBetween(String value1, String value2) {
            addCriterion("userID not between", value1, value2, "userid");
            return (Criteria) this;
        }

        public Criteria andReporteduserIsNull() {
            addCriterion("reportedUser is null");
            return (Criteria) this;
        }

        public Criteria andReporteduserIsNotNull() {
            addCriterion("reportedUser is not null");
            return (Criteria) this;
        }

        public Criteria andReporteduserEqualTo(String value) {
            addCriterion("reportedUser =", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserNotEqualTo(String value) {
            addCriterion("reportedUser <>", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserGreaterThan(String value) {
            addCriterion("reportedUser >", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserGreaterThanOrEqualTo(String value) {
            addCriterion("reportedUser >=", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserLessThan(String value) {
            addCriterion("reportedUser <", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserLessThanOrEqualTo(String value) {
            addCriterion("reportedUser <=", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserLike(String value) {
            addCriterion("reportedUser like", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserNotLike(String value) {
            addCriterion("reportedUser not like", value, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserIn(List<String> values) {
            addCriterion("reportedUser in", values, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserNotIn(List<String> values) {
            addCriterion("reportedUser not in", values, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserBetween(String value1, String value2) {
            addCriterion("reportedUser between", value1, value2, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andReporteduserNotBetween(String value1, String value2) {
            addCriterion("reportedUser not between", value1, value2, "reporteduser");
            return (Criteria) this;
        }

        public Criteria andBoardidIsNull() {
            addCriterion("boardID is null");
            return (Criteria) this;
        }

        public Criteria andBoardidIsNotNull() {
            addCriterion("boardID is not null");
            return (Criteria) this;
        }

        public Criteria andBoardidEqualTo(Integer value) {
            addCriterion("boardID =", value, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidNotEqualTo(Integer value) {
            addCriterion("boardID <>", value, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidGreaterThan(Integer value) {
            addCriterion("boardID >", value, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidGreaterThanOrEqualTo(Integer value) {
            addCriterion("boardID >=", value, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidLessThan(Integer value) {
            addCriterion("boardID <", value, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidLessThanOrEqualTo(Integer value) {
            addCriterion("boardID <=", value, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidIn(List<Integer> values) {
            addCriterion("boardID in", values, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidNotIn(List<Integer> values) {
            addCriterion("boardID not in", values, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidBetween(Integer value1, Integer value2) {
            addCriterion("boardID between", value1, value2, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardidNotBetween(Integer value1, Integer value2) {
            addCriterion("boardID not between", value1, value2, "boardid");
            return (Criteria) this;
        }

        public Criteria andBoardnameIsNull() {
            addCriterion("boardName is null");
            return (Criteria) this;
        }

        public Criteria andBoardnameIsNotNull() {
            addCriterion("boardName is not null");
            return (Criteria) this;
        }

        public Criteria andBoardnameEqualTo(String value) {
            addCriterion("boardName =", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameNotEqualTo(String value) {
            addCriterion("boardName <>", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameGreaterThan(String value) {
            addCriterion("boardName >", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameGreaterThanOrEqualTo(String value) {
            addCriterion("boardName >=", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameLessThan(String value) {
            addCriterion("boardName <", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameLessThanOrEqualTo(String value) {
            addCriterion("boardName <=", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameLike(String value) {
            addCriterion("boardName like", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameNotLike(String value) {
            addCriterion("boardName not like", value, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameIn(List<String> values) {
            addCriterion("boardName in", values, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameNotIn(List<String> values) {
            addCriterion("boardName not in", values, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameBetween(String value1, String value2) {
            addCriterion("boardName between", value1, value2, "boardname");
            return (Criteria) this;
        }

        public Criteria andBoardnameNotBetween(String value1, String value2) {
            addCriterion("boardName not between", value1, value2, "boardname");
            return (Criteria) this;
        }

        public Criteria andTopicidIsNull() {
            addCriterion("topicID is null");
            return (Criteria) this;
        }

        public Criteria andTopicidIsNotNull() {
            addCriterion("topicID is not null");
            return (Criteria) this;
        }

        public Criteria andTopicidEqualTo(Integer value) {
            addCriterion("topicID =", value, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidNotEqualTo(Integer value) {
            addCriterion("topicID <>", value, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidGreaterThan(Integer value) {
            addCriterion("topicID >", value, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidGreaterThanOrEqualTo(Integer value) {
            addCriterion("topicID >=", value, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidLessThan(Integer value) {
            addCriterion("topicID <", value, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidLessThanOrEqualTo(Integer value) {
            addCriterion("topicID <=", value, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidIn(List<Integer> values) {
            addCriterion("topicID in", values, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidNotIn(List<Integer> values) {
            addCriterion("topicID not in", values, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidBetween(Integer value1, Integer value2) {
            addCriterion("topicID between", value1, value2, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopicidNotBetween(Integer value1, Integer value2) {
            addCriterion("topicID not between", value1, value2, "topicid");
            return (Criteria) this;
        }

        public Criteria andTopictitleIsNull() {
            addCriterion("topicTitle is null");
            return (Criteria) this;
        }

        public Criteria andTopictitleIsNotNull() {
            addCriterion("topicTitle is not null");
            return (Criteria) this;
        }

        public Criteria andTopictitleEqualTo(String value) {
            addCriterion("topicTitle =", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleNotEqualTo(String value) {
            addCriterion("topicTitle <>", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleGreaterThan(String value) {
            addCriterion("topicTitle >", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleGreaterThanOrEqualTo(String value) {
            addCriterion("topicTitle >=", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleLessThan(String value) {
            addCriterion("topicTitle <", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleLessThanOrEqualTo(String value) {
            addCriterion("topicTitle <=", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleLike(String value) {
            addCriterion("topicTitle like", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleNotLike(String value) {
            addCriterion("topicTitle not like", value, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleIn(List<String> values) {
            addCriterion("topicTitle in", values, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleNotIn(List<String> values) {
            addCriterion("topicTitle not in", values, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleBetween(String value1, String value2) {
            addCriterion("topicTitle between", value1, value2, "topictitle");
            return (Criteria) this;
        }

        public Criteria andTopictitleNotBetween(String value1, String value2) {
            addCriterion("topicTitle not between", value1, value2, "topictitle");
            return (Criteria) this;
        }

        public Criteria andReplyidIsNull() {
            addCriterion("replyID is null");
            return (Criteria) this;
        }

        public Criteria andReplyidIsNotNull() {
            addCriterion("replyID is not null");
            return (Criteria) this;
        }

        public Criteria andReplyidEqualTo(Integer value) {
            addCriterion("replyID =", value, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidNotEqualTo(Integer value) {
            addCriterion("replyID <>", value, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidGreaterThan(Integer value) {
            addCriterion("replyID >", value, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidGreaterThanOrEqualTo(Integer value) {
            addCriterion("replyID >=", value, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidLessThan(Integer value) {
            addCriterion("replyID <", value, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidLessThanOrEqualTo(Integer value) {
            addCriterion("replyID <=", value, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidIn(List<Integer> values) {
            addCriterion("replyID in", values, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidNotIn(List<Integer> values) {
            addCriterion("replyID not in", values, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidBetween(Integer value1, Integer value2) {
            addCriterion("replyID between", value1, value2, "replyid");
            return (Criteria) this;
        }

        public Criteria andReplyidNotBetween(Integer value1, Integer value2) {
            addCriterion("replyID not between", value1, value2, "replyid");
            return (Criteria) this;
        }

        public Criteria andReasonIsNull() {
            addCriterion("reason is null");
            return (Criteria) this;
        }

        public Criteria andReasonIsNotNull() {
            addCriterion("reason is not null");
            return (Criteria) this;
        }

        public Criteria andReasonEqualTo(String value) {
            addCriterion("reason =", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotEqualTo(String value) {
            addCriterion("reason <>", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonGreaterThan(String value) {
            addCriterion("reason >", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonGreaterThanOrEqualTo(String value) {
            addCriterion("reason >=", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonLessThan(String value) {
            addCriterion("reason <", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonLessThanOrEqualTo(String value) {
            addCriterion("reason <=", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonLike(String value) {
            addCriterion("reason like", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotLike(String value) {
            addCriterion("reason not like", value, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonIn(List<String> values) {
            addCriterion("reason in", values, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotIn(List<String> values) {
            addCriterion("reason not in", values, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonBetween(String value1, String value2) {
            addCriterion("reason between", value1, value2, "reason");
            return (Criteria) this;
        }

        public Criteria andReasonNotBetween(String value1, String value2) {
            addCriterion("reason not between", value1, value2, "reason");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIsNull() {
            addCriterion("createTime is null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIsNotNull() {
            addCriterion("createTime is not null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeEqualTo(Date value) {
            addCriterion("createTime =", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotEqualTo(Date value) {
            addCriterion("createTime <>", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThan(Date value) {
            addCriterion("createTime >", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("createTime >=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThan(Date value) {
            addCriterion("createTime <", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThanOrEqualTo(Date value) {
            addCriterion("createTime <=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIn(List<Date> values) {
            addCriterion("createTime in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotIn(List<Date> values) {
            addCriterion("createTime not in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeBetween(Date value1, Date value2) {
            addCriterion("createTime between", value1, value2, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotBetween(Date value1, Date value2) {
            addCriterion("createTime not between", value1, value2, "createtime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }

        public Criteria andUseridLikeInsensitive(String value) {
            addCriterion("upper(userID) like", value.toUpperCase(), "userid");
            return this;
        }

        public Criteria andReporteduserLikeInsensitive(String value) {
            addCriterion("upper(reportedUser) like", value.toUpperCase(), "reporteduser");
            return this;
        }

        public Criteria andBoardnameLikeInsensitive(String value) {
            addCriterion("upper(boardName) like", value.toUpperCase(), "boardname");
            return this;
        }

        public Criteria andTopictitleLikeInsensitive(String value) {
            addCriterion("upper(topicTitle) like", value.toUpperCase(), "topictitle");
            return this;
        }

        public Criteria andReasonLikeInsensitive(String value) {
            addCriterion("upper(reason) like", value.toUpperCase(), "reason");
            return this;
        }
    }
}